/**
 *
 */
package com.yidu.hbats.action.ZatsBaseMap;

import com.yidu.hbats.model.*;
import com.yidu.hbats.service.AtsDataTextService;
import com.yidu.hbats.service.atsBase.AtsBaseItemService;
import com.yidu.hbats.service.atsBase.AtsBaseSportService;
import com.yidu.hbats.service.emp.AtsEmpAthleteService;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.*;

/**
 * 类的描述：指标对比controller
 *
 * @author HJJ
 * @date
 */
@Controller
@RequestMapping("/atsBaseMap")
public class AtsBaseMapController {
    @Resource
    AtsDataTextService atsDataTextService;

    @Resource
    AtsBaseSportService atsBaseSportService;

    @Resource
    AtsEmpAthleteService atsEmpAthleteService;

    @Resource
    AtsBaseItemService atsBaseItemService;

    /**
     * 查找所有可以用的体育项目
     * 在测试指标图形界面有用
     * @return
     */
    @RequestMapping("/findAtsPro")
    @ResponseBody
    public Map<String, Object> findAtsPro() {
        //定义个 map集合
        Map<String, Object> map = new HashMap<>();
        //将 code 0 msg success 加入到map集合中
        map.put("code", 0);
        map.put("msg", "success");
        //调用 查找所有体育项目的方法
        List<AtsBaseSport> list = atsBaseSportService.findAll();
        // 得到一个 新的 list<Map<>>集合
        List<Map<String, Object>> list2 = new ArrayList<>();
        //循环遍历 list 集合
        for (Iterator<AtsBaseSport> iterator = list.iterator(); iterator.hasNext(); ) {
            AtsBaseSport next = iterator.next();
            //得到一个新的 map集合
            Map<String, Object> map2 = new HashMap<>();
            //将name 运动项目名字 value 运动项目id selected 空 disabled 空
            map2.put("name", next.getSportName());
            map2.put("value", next.getSportId());
            map2.put("selected", "");
            map2.put("disabled", "");
            //map2 加入到list2集合中
            list2.add(map2);
        }
        // 将 list2 加入到 主要map 集合中
        map.put("data", list2);
        return map;
    }

    /**
     * 根据体育项目id 查运动员
     * 在测试指标图形界面有用
     * @return
     */
    @RequestMapping("/findBySportId")
    @ResponseBody
    public Map<String, Object> findBySportId(HttpServletRequest request) {
        String sportID = request.getParameter("sportId");//得到运动项目id
        //得到一个 新的运动员的对象
        AtsEmpAthlete ats = new AtsEmpAthlete();
        //将得到的运动项目id放入到对象中
        ats.setSportId(Integer.valueOf(sportID));
        //得到一个map集合
        Map<String, Object> map = new HashMap<>();
        //将code  0  msg  success放入到map集合中
        map.put("code", 0);
        map.put("msg", "success");
        // 将运动员对象 放入到 运动员service 方法中
        List<AtsEmpAthlete> list = atsEmpAthleteService.selectBysportId(ats);
        //得到一个 list<Map<>>集合
        List<Map<String, Object>> list2 = new ArrayList<>();
        //循环遍历 list 集合
        for (Iterator<AtsEmpAthlete> iterator = list.iterator(); iterator.hasNext(); ) {
            AtsEmpAthlete next = iterator.next();
            //得到一个新的map2集合
            Map<String, Object> map2 = new HashMap<>();
            //将 name  放入运动员名字（教练员名字）
            map2.put("name", next.getAthleteName()+"(教练员:"+next.getCoachName()+")");
            //将 value 运动员id
            map2.put("value", next.getAthleteId());
            //将 selected kong
            map2.put("selected", "");
            //将 disabled kong
            map2.put("disabled", "");
            //将map集合加入到list2集合中
            list2.add(map2);
        }
        //将data list2 加入到map 集合中
        map.put("data", list2);
        return map;
    }


    /**
     * 指标图形显示界面需要
     * 根据体育项目id 查体育项目下面的指标
     *
     * @return
     * @throws Exception
     */
    @RequestMapping("/selectXiaLa")
    @ResponseBody
    public List<Map<String, Object>> selectAllItem(Integer sportId) {
        //得到一个新的 list<map> 集合
        List<Map<String, Object>> lsite = new ArrayList<Map<String, Object>>();
        //判断 得到的 id 不为空StringUtils.isEmpty
        if(!StringUtils.isEmpty(sportId)){
            //根据id 查改体育项目下面的指标 selectSportIdItem
            List<AtsBaseItem> list = atsBaseItemService.selectSportIdItem(sportId);
            for (Iterator iterator = list.iterator(); iterator.hasNext(); ) {
                AtsBaseItem tmodule = (AtsBaseItem) iterator.next();
                //得到一个新的map集合
                Map<String, Object> map = new HashMap<String, Object>();
                //将 name  ItemExp
                map.put("name", tmodule.getItemExp());
                //将 pId 指标父id
                map.put("pId", tmodule.getParentId());
                //将 id 指标id
                map.put("id", tmodule.getItemId());
                //将map集合加入到lsite中
                lsite.add(map);
            }
        }
        return lsite;
    }

    /**
     *  对比图表所需要的数据
     * @param ats
     * @return
     */
    @RequestMapping("/selectItemTu")
    @ResponseBody
    public List<Map<String,Object>> selectItemTu(AtsData ats){
        return atsDataTextService.selectItemTu(ats);
    }

    /**
     *  根据运动员id 在批次表中查该运动员所有的数据
     * @param = 运动员id
     * @return
     */
    @RequestMapping("/selectPici")
    @ResponseBody
    public List<Map<String,Object>> selectPici(HttpServletRequest request){
        //从网页上得到val
        String val = request.getParameter("val");
        //得到一个list<map> 集合
        List<Map<String,Object>> listMap = new ArrayList<>();
        //根据 得到的val去查信息 selectAtsKey
        List<AtsDataBatch> list = atsDataTextService.selectAtsKey(Integer.valueOf(val));
        //循环遍历list
        for (AtsDataBatch atsDataBatch : list) {
            //得到一个新的map集合
            Map<String,Object> map = new HashMap<>();
            //将 name  批次名字加入到map集合中
            map.put("name","第"+atsDataBatch.getBatchName()+"批次 ("+atsDataBatch.getBatchDate()+")");
            //将 value  批次id
            map.put("value",atsDataBatch.getBatchId());
            //map加入到listMap集合中
            listMap.add(map);
        }
        return listMap;
    }


}

